import { emitter } from '@/hooks/useEmitter';
import { mapStg, sessionStg } from '@/utils/storage';

function mapToSession(key: string) {
	const value = mapStg.get(key);
	if (value) {
		// 把mapStg当中的内容转存放到sessionStg
		sessionStg.set(key, value);
	}
}

function sessionToMap(key: string) {
	const value = sessionStg.get(key);
	if (value) {
		// 把mapStg当中的内容转存放到sessionStg
		mapStg.set(key, value);
		// sessionStg.remove(key);
	}
	return value;
}

export default function setupInit() {
	console.log('setupInit', window);
	window.addEventListener('beforeunload', event => {
		// console.log('12313123132-0');
		// alert('11');
		mapToSession('isLogin');
		mapToSession('token');
		mapToSession('userInfo');
		// 2. 阻止页面卸载（可选，需按规范返回值）
		// event.preventDefault();
		// Chrome 需要设置 returnValue
		// event.returnValue = '';
		// 旧浏览器需要返回非空字符串
		// return '确定要离开吗？';
	});
	window.addEventListener('unload', () => {
		// console.log('12313123132-3');
	});

	// window.addEventListener('load', () => {
	// 	checkLogin();
	// });

	const checkLogin = () => {
		const isLogin = sessionToMap('isLogin');
		const token = sessionToMap('token');
		const userInfo = sessionToMap('userInfo');
		// 直接使用 emitter 而不是 useEmit Hook
		emitter.emit('app-load', {
			isLogin,
			token,
			userInfo
		});
	};
	checkLogin();
}
